From f65a2c89be92aadb157ef225864322174a3d51e4 Mon Sep 17 00:00:00 2001 From: "kaf24@firebug.cl.cam.ac.uk" Date: Tue, 11 Apr 2006 10:41:08 +0100 Subject: [PATCH] When running test 5 in Memtest86+ v1.65, I got a "this opcode is not supported", so I decided to add it. It's a compare operation, and it's just the opposite of the already supported one (opcode 0x39), so it's nothing spectacular. Why there's a page-fault when this instruction gets executed, I haven't got a clue, but I have a feeling that Memtest86 is doing something wrong :-( However, this fix may help some other code to run too... With this, Test 5 passes all the way through without crashing. I did see some occassional memory errors in some other tests, and I'm not 100% sure whether those are caused by the system or they are "real" memory errors. At some time in the future I may get round to memory testing my target system... Signed off by: Mats Petersson (mats.petersson@amd.com).=20 --- xen/arch/x86/hvm/platform.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/xen/arch/x86/hvm/platform.c b/xen/arch/x86/hvm/platform.c index c36360bcb3..1e78470d34 100644 --- a/xen/arch/x86/hvm/platform.c +++ b/xen/arch/x86/hvm/platform.c @@ -401,6 +401,11 @@ static int hvm_decode(int realmode, unsigned char *opcode, struct instruction *i GET_OP_SIZE_FOR_NONEBYTE(instr->op_size); return reg_mem(instr->op_size, opcode, instr, rex); + case 0x3B: /* cmp m32/16, r32/16 */ + instr->instr = INSTR_CMP; + GET_OP_SIZE_FOR_NONEBYTE(instr->op_size); + return mem_reg(instr->op_size, opcode, instr, rex); + case 0x80: case 0x81: { -- 2.30.2